package openapi_dto

type CreateTenantRequest struct {
	TaskId               string      `json:"taskId" binding:"required" err:"taskId不能为空"`
	DeliveryNo           string      `json:"deliveryNo" binding:"required" err:"deliveryNo不能为空"`
	DeliveryBatchNo      string      `json:"deliveryBatchNo"`
	EnterpriseId         int32       `json:"enterpriseId"`
	EnterpriseName       string      `json:"enterpriseName"`
	EnterpriseCode       string      `json:"enterpriseCode"`
	TenantCode           string      `json:"tenantCode"  binding:"required" err:"tenantCode不能为空"`
	TenantName           string      `json:"tenantName" binding:"required" err:"tenantName不能为空"`
	CustomerId           string      `json:"customerId"`
	CustomerCode         string      `json:"customerCode"`
	CustomerName         string      `json:"customerName"`
	CustomerShortName    string      `json:"customerShortName"`
	TopCustomerId        string      `json:"topCustomerId"`
	TopCustomerName      string      `json:"topCustomerName"`
	CustomerCorpId       string      `json:"customerCorpId"`
	CustomerCorpName     string      `json:"customerCorpName"`
	MasterId             string      `json:"masterId"`
	MasterUserName       string      `json:"masterUserName"`
	MasterName           string      `json:"masterName"`
	MasterPhone          string      `json:"masterPhone"`
	MasterEmail          string      `json:"masterEmail"`
	EnvType              string      `json:"envType"`
	IsSpecialApproval    bool        `json:"isSpecialApproval"`
	SpecialApprovalType  string      `json:"specialApprovalType"`
	SpecialType          string      `json:"specialType"`
	LastModificationTime string      `json:"lastModificationTime"`
	CreationTime         string      `json:"creationTime"`
	Contracts            []Contracts `json:"contracts"`
	AppAuths             []AppAuths  `json:"appAuths"`
	InitUserName         string      `json:"initUserName"`
	InitPassword         string      `json:"initPassword"`
}
type Contracts struct {
	Id                string `json:"id"`
	Code              string `json:"code"`
	SignTime          string `json:"signTime"`
	AccountCreateTime string `json:"accountCreateTime"`
	DeliveryUserEmail string `json:"deliveryUserEmail"`
	CorpId            string `json:"corpId"`
	CorpName          string `json:"corpName"`
	Summary           string `json:"summary"`
	SummaryText       string `json:"summaryText"`
}

type AppAuths struct {
	AppId                 string  `json:"appId"`
	AppName               string  `json:"appName"`
	DeliveryNo            string  `json:"deliveryNo"`
	ProductId             string  `json:"productId"`
	ProductCode           string  `json:"productCode"`
	ProductName           string  `json:"productName"`
	RelationId            string  `json:"relationId"`
	RelationIdType        int32   `json:"relationIdType"`
	AppCode               string  `json:"appCode"`
	AppType               string  `json:"appType"`
	AppEffectiveStartTime string  `json:"appEffectiveStartTime"`
	AppEffectiveEndTime   string  `json:"appEffectiveEndTime"`
	ErpUserCount          string  `json:"erpUserCount"`
	MainProductCode       string  `json:"mainProductCode"`
	MainProductId         int32   `json:"mainProductId"`
	MainProductName       string  `json:"mainProductName"`
	IsFree                bool    `json:"isFree"`
	IsPublic              bool    `json:"isPublic"`
	ContractCode          string  `json:"contractCode"`
	Auths                 []Auths `json:"auths"`
}

type Auths struct {
	AuthID               string   `json:"authId"`
	LastModificationTime string   `json:"lastModificationTime"`
	CreationTime         string   `json:"creationTime"`
	SignType             int32    `json:"signType"`
	AuthNum              int32    `json:"authNum"`
	MaxNum               int32    `json:"maxNum"`
	AuthStandard         string   `json:"authStandard"`
	AuthPeriod           int32    `json:"authPeriod"`
	AuthTypeName         string   `json:"authTypeName"`
	AuthTypeCode         string   `json:"authTypeCode"`
	Projects             []string `json:"projects"`
	EffectiveStartTime   string   `json:"effectiveStartTime"`
	EffectiveEndTime     string   `json:"effectiveEndTime"`
}

type RemoveTenantRequest struct {
	TaskId          string `json:"taskId" binding:"required" err:"taskId不能为空"`
	TaskCallbackUrl string `json:"taskCallbackUrl"`
	EnterpriseCode  string `json:"enterpriseCode"`
	EnterpriseName  string `json:"enterpriseName"`
	TenantCode      string `json:"tenantCode" binding:"required" err:"tenantCode不能为空"`
	TenantName      string `json:"tenantName"`
	CustomerId      string `json:"customerId"`
}
type GetTaskStatusRequest struct {
	TaskId string `json:"taskId" form:"taskId" binding:"required" err:"taskId不能为空"`
}

type CreateTenantCallbackRequest struct {
	TaskId string `json:"taskId" form:"taskId" binding:"required" err:"taskId不能为空"`
}
